package com.hafu.dao;

import com.hafu.model.Gysinfo;
import com.hafu.util.DbUtil;
import com.hafu.util.StringUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class GysinfoDao {
    public Boolean addGysInfo(Gysinfo gys) {
        String sql = "insert into gysinfo(name,tel) values(?,?)";
        Connection conn = DbUtil.getConn();
        try {
            PreparedStatement preparedStatement = conn.prepareStatement(sql);
            preparedStatement.setString(1, gys.getName());
            preparedStatement.setString(2, gys.getTel());
            int i = preparedStatement.executeUpdate();
            if (i > 0) {
                System.out.println("添加成功");
                return true;
            } else return false;
        } catch (Exception throwables) {
            throwables.printStackTrace();
        }
        return false;
    }

    //删除供应商信息
    public Boolean deleteGysInfo(int id) {
        String sql = "delete from gysinfo where id=?";
        Connection conn = DbUtil.getConn();
        try {
            PreparedStatement preparedStatement = conn.prepareStatement(sql);
            preparedStatement.setInt(1, id);
            //执行添加sql方法
            int i = preparedStatement.executeUpdate();
            if (i > 0) {
                System.out.println("删除成功");
                return true;
            } else return false;
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return false;
    }

    //修改供应商信息
    public Boolean updateGysInfo(Gysinfo gys) {
        String sql = "update gysinfo set name=?,tel=? where id=?";
        Connection conn = DbUtil.getConn();
        try {
            PreparedStatement preparedStatement = conn.prepareStatement(sql);
            preparedStatement.setString(1, gys.getName());
            preparedStatement.setString(2, gys.getTel());
            preparedStatement.setInt(3, gys.getId());
            //执行添加sql方法
            int i = preparedStatement.executeUpdate();
            if (i > 0) {
                System.out.println("修改成功");
                return true;
            } else return false;
        } catch (SQLException throwables) {

            throwables.printStackTrace();
        }
        return false;
    }
    //查询供应商信息根据名字
    public ArrayList<Gysinfo> getGysInfoByName(Gysinfo gys) {
        ArrayList<Gysinfo> List = new ArrayList<Gysinfo>();
        String sql = "select * from gysinfo";
        if (!StringUtil.isEmpty(gys.getName())){
            sql=sql+" where name like '%"+gys.getName()+"%'";
        }
        Connection conn = DbUtil.getConn();
        try {
            PreparedStatement preparedStatement = conn.prepareStatement(sql);
            ResultSet resultSet = preparedStatement.executeQuery();
            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                String tel = resultSet.getString("tel");
                Gysinfo gysinfo = new Gysinfo(id, name, tel);
                List.add(gysinfo);
            }
            return List;
        }catch (SQLException throwables){
            throwables.printStackTrace();
        }
        return null;
    }
}

